﻿Imports Biz
Imports DAL


''' <summary>
''' Clase de gestión de lógica de negocio para la entidad Password
''' </summary>
''' <remarks></remarks>
Public Class GestorPassword

    Private Shared _instance As GestorPassword
    Private Shared _semaforo As New Object

    Private _DALPassword As DALPassword

    ''' <summary>
    ''' Obtiene un objeto Departamento.
    ''' </summary>
    ''' <param name="oPassword">Objeto Departamento con la propiedad Dep_Codigo seteada
    ''' con el valor del Departamento a buscar.</param>
    ''' <returns>Objeto cPassword con datos obtenidos desde la base de datos.</returns>
    ''' <remarks></remarks>
    Public Function Buscar_Ultimo(ByVal oPassword As cPassword) As cPassword

        Return _DALPassword.Sel_Ultimo(oPassword.Usu_Legajo)

    End Function

    ''' <summary>
    ''' Da de alta un nuevo Departamento.
    ''' </summary>
    ''' <param name="oPassword">Objeto cPassword con los datos del Departamento a dar
    '''  de alta.</param>
    ''' <returns>True o False indicando el exito de la operación.</returns>
    ''' <remarks></remarks>
    Public Function Ingresar(ByVal oPassword As cPassword) As Boolean

        Return _DALPassword.Insert(oPassword)

    End Function

    ''' <summary>
    ''' Método estático Instance para exponer una única instancia de la clase GestorPassword
    ''' </summary>
    ''' <returns>Unica instancia de la clase GestorPassword</returns>
    ''' <remarks></remarks>
    Public Shared Function Instance() As GestorPassword
        If _instance Is Nothing Then
            SyncLock (_semaforo)
                If _instance Is Nothing Then
                    _instance = New GestorPassword
                End If
            End SyncLock
        End If

        Return _instance
    End Function

    Private Sub New()
        _DALPassword = DALPassword.Instance
    End Sub


End Class
